package DebugStub;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

import Enum.XML_ELEMENT;
import MediciADistanza.Control.User.UtenteControl;
import MediciADistanza.Entity.Richiesta;

public class StubServerResponseControl {
	private UtenteControl myControl;
	private Richiesta richiesta;
	private Document doc;
	private Element root;
	private FinestraStubRispostaServer stubFrame;
	
	public StubServerResponseControl(UtenteControl controlPrincipale) {
		this.myControl = controlPrincipale;
		
		this.stubFrame = new FinestraStubRispostaServer(this);
		this.stubFrame.setVisible(true);
		
		root = new Element(XML_ELEMENT.DATA);
		
		doc = new Document(root);
		
		setRisultato();
	}
	
	public void inviaRichiesta() {
		richiesta = new Richiesta();
		richiesta.setDescrizione(this.stubFrame.getRisultato());
		
		myControl.ricevi(richiesta);
	}

	public void aggiungiElemento() {
		String xml = this.stubFrame.getXMLElement();
		String testo = this.stubFrame.getTesto();
		doc.getRootElement().addContent(new Element(xml).setText(testo));
		setRisultato();
	}
	
	private void setRisultato() {
		XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
        this.stubFrame.setTestoRisultato(outputter.outputString(doc));
	}

	public void resetModule() {
		doc.removeContent();
		
		root = new Element(XML_ELEMENT.DATA);
		
		doc.setRootElement(root);
		
		setRisultato();
	}
	
}
